﻿using System.Collections.Generic;
using ZSoft.PushServices.Net.Transport.ConnectionEvents.EventsArsg;
using ZSoft.PushServices.Net.Transport.ConnectionEvents.Handlers;

namespace ZSoft.PushServices.Net.Transport
{
    public interface IConnectionManager
    {
        #region events
        event DeviceConnectedHandler DeviceConnected;
        event DeviceDisconnectedHandler DeviceDissconnected;
        event DeviceReconnectedHandler DeviceReconnected;
        event DeviceIdentifiedHandler DeviceIdentified;

        #endregion


        void SetDeviceInfo(string deviceInfo, ClientInfo info);
        string GetConnectionId(string deviceId);
        string[] GetAppClientDeviceIds(string appId);
        DeviceStatus GetDeviceStatus(string deviceId);
        void Disconnect(string connectionId);
    }
}
